﻿using System;
using System.Collections.Generic;

using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Lib.Common;
using Lib.Utility;
using Module.BusinessLogic;
using Module.EntitiesInfo;

namespace Web
{
    public partial class dangky : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        #region FillData
        void FillData(MemberInfo info)
        {

            info.UserName = txtUserName.Text;
            info.Password =MyUtility.MySecurity.Encrypt_MD5(txtPassword.Text);
            info.Address = txtAddress.Text;
            info.PhoneNumber = txtPhoneNumber.Text;
            info.Email = txtEmail.Text;
            info.CreateOn = DateTime.Now;
            info.Active = 2;
            info.CodeAcitve = MyUtility.MySecurity.GenerateRandomCode();
           if(rd1Yes.Checked)
             info.Type1 = true;
           else
             info.Type1 = false;
          
           if (rd2Yes.Checked)
             info.Type2 = true;
           else
            info.Type2 = false;
         
           if(rd3Yes.Checked)
             info.Type3 = true;
           else
            info.Type3 = false;
           
        }
        #endregion
       
        void ClearText()
        {
            txtUserName.Text = "";
            txtAddress.Text = "";
            txtEmail.Text = "";
            txtPhoneNumber.Text = "";
            
        }

    

         #region Gửi mail
        void SendMail(MemberInfo info)
        {
            try
            {
                string html = string.Empty;
                html += "<div>Xin chào:" + txtUserName.Text + "</div>";
                html += "<br/>";
                html += "<div>Chào mừng bạn đến với ngoaihanganh.vn</div>";
                html +=
                    "<div>Cảm ơn bạn đã đăng ký thành viên tại <a href=\"http://ngoaihanganh.vn\">http://ngoaihanganh.vn </a></div>";
                html += "<br/>";                
                html += "<b>Thông tin cá nhân</b>";
                html += "<div>Tên tài đăng nhập: " + txtUserName.Text + "</div>";
                html += "<div>Mật khẩu: " + txtPassword.Text + "</div>";
                html +=
                    "<div>Nếu bạn có bất kỳ thắc mắc gì, hãy liên hệ với chúng tôi để nhận được sự hỗ trợ nhanh nhất.</div>";
                html += "<div>Email:  support@ngoaihanganh.vn</div>";
                html += "<br/>";

                ComomFunctions.SendMail("Chào mừng bạn đến với ngoaihanganh.vn", html, txtEmail.Text);
            }
            catch (Exception)
            {                                
            }
        }
        #endregion

        public bool IsValidEmail(string email)
        {
            try
            {
                int nFirt = int.Parse(email.Substring(0, 1));
                return false;
            }
            catch
            {
                string pattern = @"^[_a-zA-Z0-9][_.a-zA-Z0-9]*@[-.a-zA-Z0-9]+(\.[_.a-zA-Z0-9]+)*\.
                (com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|vn|[a-zA-Z]{2})$";
                //Regular expression object
                Regex check = new Regex(pattern, RegexOptions.IgnorePatternWhitespace);
                //boolean variable to return to calling method
                bool valid = false;

                //make sure an email address was provided
                if (string.IsNullOrEmpty(email))
                {
                    valid = false;
                }
                else
                {
                    //use IsMatch to validate the address
                    valid = check.IsMatch(email.ToLower());
                }
                //return the value to the calling method
                return valid;
            }
        }

        protected void btn_Send_Click(object sender, EventArgs e)
        {
            try
            {
                MemberInfo info = new MemberInfo();
                FillData(info);
                if (txtUserName.Text.Length == 0)
                {

                    MessageBox.Show("Bạn chưa nhập tên đăng nhập?");
                    txtUserName.Focus();
                    return;
                }
                bool flag1 = MemberBL.CheckAcount(3, txtUserName.Text, "");
                if (flag1 == true)
                {
                    MessageBox.Show("Tên đăng nhập đã tồn tại!");
                    txtUserName.Focus();
                    return;
                }
                if (txtPassword.Text.Length == 0)
                {

                    MessageBox.Show("Bạn chưa nhập mật khẩu?");
                    txtPassword.Focus();
                    return;
                }
                if (txtPassword.Text.Length <= 6)
                {

                    MessageBox.Show("Mật khẩu phải lớn hơn 6 ký tự");
                    txtPassword.Focus();
                    return;
                }
                bool flag2 = MemberBL.CheckAcount(3, txtPhoneNumber.Text, "");
                if (txtPhoneNumber.Text.Length == 0)
                {

                    MessageBox.Show("Bạn chưa nhập số điện thoại?");
                    txtPhoneNumber.Focus();
                    return;
                }
                if (flag2 == true)
                {
                    MessageBox.Show("Số điện thoại này đã tồn tại!");
                    txtPhoneNumber.Focus();
                    return;
                }
                bool flag3 = MemberBL.CheckAcount(3, txtEmail.Text, "");
                if (txtEmail.Text.Length == 0)
                {

                    MessageBox.Show("Bạn chưa nhập email?");
                    txtEmail.Focus();
                    return;
                }
                if (flag3 == true)
                {
                    MessageBox.Show("Email này đã tồn tại!");
                    txtEmail.Focus();
                    return;
                }
                if (!IsValidEmail(txtEmail.Text))
                {
                    MessageBox.Show("Email không đúng định dạng");
                    txtEmail.Focus();
                    return;

                }
                else
                {
                    int i = MemberBL.Insert(info);
                    if (i > 0)
                    {
                        MessageBox.Show("Bạn đăng ký thành công");
                        SendMail(info);
                        ClearText();
                        txtUserName.Focus();
                    }
                }

            }
            catch (Exception ex)
            {                
            }
        }
        protected void btn_Delete_Click(object sender, EventArgs e)
        {
            ClearText();
        }
    }
}